// Cellular phone
				// Grid 100 x 100. You may modify it for more or less precision
				// (which implies, of course, more or less computation time)
		grid=100;
		min=0;max=1; // Warning. Hard coded. Must be the same as in problemDef
		//f=0;

		dx1=(max-min)/grid;
		dx2=(max-min)/grid;
		
		// For each point of the grid, compute the maximum field generated 
		// by the stations. The aim is to maximize the smallest maximum
f=infinity;
		
		for(i=0;i<=grid;i++) 
		{
			y1=min+i*dx1;
		
			for(j=0;j<=grid;j++)
			{
				y2=min+j*dx2;			
				z=0; // Max known field
					for (d = 0; d < xs.size-1; d=d+2) // Loop on station positions
					{
						x1=xs.x[d]; // First coordinate
						x2=xs.x[d +1]; // Second coordinate
	
					//	z2=1./((x1-i)*(x1-y1) +(x2-j)*(x2-y2)+1);
					// Field generated by the station (d, d+1)
				z2=1./((x1-y1)*(x1-y1) +(x2-y2)*(x2-y2)+0.0001*dx1);	
					// If higher than already known, keep it
						if(z2>z) z=z2; 
					}

			//	f=f+z;
				// At this point, the maximum field generated is z
		// If it is smaller than in previous checked points, keep it
			if(z<f) f=z;	
			
			}
  
		}
		// We want it as high as possible		f=1./f; // In order to have something to minimise
